/*--------------------------------------------------------------------------
Example.c
****************************************
**  Copyright  (C)    2021-2022   **
**  Web:              http://rothd.cn   **
****************************************
--------------------------------------------------------------------------*/

#include "MC3172.h"

void GPIO_EXAMPLE(u32 gpio_sel)
{
    INTDEV_SET_CLK_RST(gpio_sel, (INTDEV_RUN | INTDEV_IS_GROUP0 | INTDEV_CLK_IS_CORECLK_DIV2));

    GPIO_SET_OUTPUT_EN_VALUE(gpio_sel, GPIO_PIN_7_0, GPIO_SET_ENABLE);
    GPIO_SET_INPUT_EN_VALUE(gpio_sel, (GPIO_PIN_15_8),GPIO_SET_ENABLE);

    GPIO_SET_OUTPUT_PIN_TO_1(gpio_sel, (GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3));
    GPIO_SET_OUTPUT_PIN_TO_0(gpio_sel, (GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7));

    GPIO_SET_OUTPUT_PIN_VALUE(gpio_sel, GPIO_PIN_7_0, GPIO_SET_DISABLE);
    while(1)  {

        GPIO_SET_OUTPUT_PIN_INV(gpio_sel,(GPIO_PIN0|GPIO_PIN2));
        u16 rx_data;
        rx_data=GPIO_GET_INPUT_VALUE_SAFE(gpio_sel);
        GPIO_SET_OUTPUT_PIN_VALUE(gpio_sel,(GPIO_PIN4 | GPIO_PIN5 | GPIO_PIN6 | GPIO_PIN7),(rx_data >> 4));

        for (u32 var = 0; var < 5000; ++var) {
            NOP();
        }

    }

}
